package com.link.base.base.fund.service;

/**
 * <p>现金账户交易相关公共业务逻辑</p>
 * <p>Description</p>
 * <p>Company</p>
 *
 * @author yrf
 * @date 2016年12月1日  上午10:23:15
 */
public interface CommonTransactionService {

    /**
     * <p>账户金额改变，主要生成交易明细，更新账户余额</p>
     *
     * @author yrf
     * @param dealerAccountId     账户id
     * @param transactionDetailId 明细id，可为空
     * @param transactionAmount   交易金额
     * @param sourceId            交易来源id
     * @param sourceNum           交易来源编号
     * @param sourceType          交易来源类型
     * @param textDigest          摘要
     * @param comments            备注
     * @throws Exception
     */
    public void changeAccount(Long dealerAccountId, Long transactionDetailId,
                              double transactionAmount, Long sourceId, String sourceNum,
                              String sourceType, String textDigest, String comments) throws Exception;

    /**
     * <p>订单付款</p>
     *
     * @author yrf
     * @param orderId         订单id
     * @param dealerAccountId 付款账户id
     * @param textDigest      摘要
     * @param comments        备注
     * @throws Exception
     */
    public void orderPay(Long orderId, Long dealerAccountId, String textDigest, String comments) throws Exception;
}
